home *** CD-ROM | disk | FTP | other *** search
- /*
- * MakeLink.c - Copyright © 1991 by Devil's child.
- *
- * Created: 26 Nov 1992 21:42:25
- * Modified: 02 Oct 1994 11:09:30
- *
- * Make>> sc <file>.c
- * Make>> slink <file>.o SC SD ND BATCH NOICONS TO <file>
- */
-
- #define ARG_FROM 0
- #define ARG_TO 1
-
- long _main(void)
- {
- struct ExecBase *SysBase = *((struct ExecBase **)4L);
- struct DosLibrary *DOSBase;
- APTR UtilityBase;
- char FromPath[256];
- struct RDArgs *RA;
- char *Argv[] = { NULL, NULL, NULL };
- BPTR FromDir, L;
- long rc=20;
-
- if (DOSBase = (struct DosLibrary *)OpenLibrary("dos.library", 37)) {
- UtilityBase = DOSBase->dl_UtilityBase;
- if (RA = ReadArgs("From/A,To/A", (long *)Argv, NULL)) {
- strcpy(FromPath, Argv[ARG_FROM]);
- *PathPart(FromPath) = '\0';
- if (FromDir = Lock(FromPath, ACCESS_READ)) {
- if (L = Lock(Argv[ARG_TO], ACCESS_READ)) {
- if (SameLock(FromDir, L) == LOCK_DIFFERENT) {
- if (MakeLink(Argv[ARG_FROM], (long)Argv[ARG_TO], LINK_SOFT))
- rc = 0;
- }
- else {
- if (MakeLink(Argv[ARG_FROM], L, LINK_HARD))
- rc = 0;
- }
- UnLock(L);
- }
- UnLock(FromDir);
- }
- FreeArgs(RA);
- }
- if (rc)
- PrintFault(IoErr(), "MakeLink");
- CloseLibrary((struct Library *)DOSBase);
- }
- return rc;
- }
-
- static const char Ver[] = "$VER:MakeLink 41.0 (01.10.94)";
-
-